// 引入unocss css
import '@/plugins/unocss'

// 导入全局的svg图标
import '@/plugins/svgIcon'

// 初始化多语言
import { setupI18n } from '@/plugins/vueI18n'

// 引入状态管理
import { setupStore } from '@/store'

// 全局组件
import { setupGlobCom } from '@/components'

// 引入 element-plus
import { setupElementPlus } from '@/plugins/elementPlus'

// 引入 form-create
import { setupFormCreate } from '@/plugins/formCreate'

// 引入全局样式
import '@/styles/index.scss'

// 引入动画
import '@/plugins/animate.css'

// 路由
import router, { setupRouter } from '@/router'

// 权限
import { setupAuth } from '@/directives'

// 处理 非被动事件侦听器-阻塞
import 'default-passive-events'

import { createApp } from 'vue'

import App from './App.vue'

import './permission'

import '@/plugins/tongji' // 百度统计
import Logger from '@/utils/Logger'

import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐患

// im引入
import { TUIComponents, TUIChatKit, genTestUserSig } from './TUIKit'
import { TUILogin } from '@tencentcloud/tui-core'
import { useIMStoreWithOut } from '@/store/modules/im'
import { useCache } from '@/hooks/web/useCache'
const { wsCache } = useCache()
if (!wsCache.get('IMUserID')) {
  wsCache.set('IMUserID', useIMStoreWithOut().getIMUserID) // DC: 临时写入本地 Local
}

// im配置信息
const SDKAppID = 1600029298 // Your SDKAppID
const secretKey = 'fdb5b8018dfda4cedc7eacd833d709cfca144ea2e614217a3652cef0873f9cfa' //Your secretKey
const userID = wsCache.get('IMUserID') || useIMStoreWithOut().getIMUserID // User ID

// 创建实例
const setupAll = async () => {
  const app = createApp(App)

  await setupI18n(app)

  setupStore(app)

  setupGlobCom(app)

  setupElementPlus(app)

  setupFormCreate(app)

  setupRouter(app)

  setupAuth(app)

  await router.isReady()

  app.use(VueDOMPurifyHTML)

  app.mount('#app')

  // im登录
  TUIChatKit.components(TUIComponents, app)

  // TUIChatKit init
  TUIChatKit.init()

  // TUICore login
  // TUILogin.login({
  //   SDKAppID,
  //   userID,
  //   userSig: genTestUserSig({
  //     SDKAppID,
  //     secretKey,
  //     userID
  //   }).userSig,
  //   useUploadPlugin: true, // 如果您需要发送图片、语音、视频、文件等富媒体消息，请设置为 true
  //   useProfanityFilterPlugin: false, // 如果您已购买内容审核服务，开启此功能请设置为 true
  //   framework: 'vue3'
  // })
}

setupAll()

Logger.prettyPrimary(`欢迎使用`, import.meta.env.VITE_APP_TITLE)

export { SDKAppID, secretKey }
